import { ofetch } from "ofetch";

// 创建自定义 ofetch 实例
const api = ofetch.create({
  // 公共基础 URL（例如 LibreTranslate）
  baseURL: "https://libretranslate.de",

  // 全局请求头
  headers: {
    "Content-Type": "application/json",
  },

  // 超时（毫秒）
  timeout: 10000,

  // 请求拦截器（可选）
  onRequest({ request, options }) {
    console.log("发送请求:", request, options);
    // 可在此添加认证 token 等（本例不需要）
  },

  // 响应拦截器（统一处理错误）
  onResponse({ response }) {
    console.log("收到响应:", response.status, response.url);
  },

  // 错误拦截器（关键！）
  async onResponseError({ response }) {
    let message = "请求失败";

    try {
      const errorData = await response._data;
      message = errorData?.error || errorData?.message || "未知错误";
    } catch (e) {
      message = `HTTP ${response.status}`;
    }

    // 抛出带消息的错误，便于 UI 捕获
    throw new Error(message);
  },
});

export default api;
